<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="../../assets/font/iconfont.css">
    <style>
        body{
            padding-bottom: 800px;
        }
        .iconfont{
            font-size: 40px;
        }
        icon{
            font-family: "iconfont" !important;
            font-size: 40px;
        }
        icon-home{
            font-family: "iconfont" !important;
            font-size: 40px;
            display: block;
        }
        icon-home::before{
            content: "\e8ff";
        }
    </style>
</head>
<body>
    <div id="app">
        <icon>&#xe8ff;</icon>
        <icon-home></icon-home>
    </div>
    <script type="module"> 
        // vue的插件开发方案
        //      vue 提供 应用方法 app.use 可以对其它应用方法功能进行文件独立开发和定义
        //      vue 提供的应用方法 app.use(options|function)
        //             + options:  app.use 方法会将传入的 对象的 install 属性方法进行调用执行，会将创建的应用对象作为回调参数传入
        //             + function:  app.use 方法传入对应的回调，方法内部会直接将该回调为install属性取值进行执行
        let customElementOptions = {
            install:function(app){
                console.log("自定义的customElementOptions配置对象的install方法被执行",app)
                app.config.compilerOptions.isCustomElement = function(tag){
                    return tag=="icon"||tag.startsWith("icon-")
                }
            }
        }
        let customElementCallback = function(app){
            console.log("自定义的customElementOptions配置对象的install方法被执行",app)
            app.config.compilerOptions.isCustomElement = function(tag){
                return tag=="icon"||tag.startsWith("icon-")
            }
        }
        
        import { createApp } from "../../assets/vue3/vue.esm-browser.js";
        const app = createApp({
            data(){
                return {

                }
            }
        })
        // app.use(customElementOptions)
        app.use(customElementCallback)
        app.mount("#app")
    </script>
</body>
</html>